const func = function(x) { return x + 1 };
// 相當於下方寫法
const func = (x) => { return x + 1 };
只有傳入一個參數時可以不加()
程式碼內容為表達式時(會回傳一個值)可以不寫 return {}
const func = x => x + 1 //只有單行表達式,可直接回傳,不需加上{}
沒有帶參數時,不能省略()
const func = () => 1 + 1
不能使用 arguments 參數
const func = () => { console.log(arguments) }; //arguments is not defined
func(1,2,3);
可以改使用其餘參數
const func = (...arg) => { console.log(arg) }; //[1,2,3]
func(1,2,3);
沒有自己的 this 所以也沒辦法透過 call, apply, bind 重新賦予 this
const family = {
name: 'yinmin'
}
const func = (param1, param2) => {
console.log(this, param1, param2) //Window物件 "媽媽" "爸爸"
}
func.call(family, '媽媽', '爸爸');
無法使用 prototype,無法作為建構函式使用
const func = (x) => { this.name = x };
const a = new func('a');
console.log(a); //func is not a constructor
console.log(func.prototype) //undefined